#include "MetaBloqueBPlus.h"


MetaBloqueBPlus::MetaBloqueBPlus(){
	this->_cantBloques = 0;
	this->_refRaiz = -1;
	this->_refHoja = -1;
	this->_refVacio = -1;
	this->_serializador.reset();
}

MetaBloqueBPlus::~MetaBloqueBPlus(){
	this->_cantBloques = 0;
	this->_refRaiz = -1;
	this->_refHoja = -1;
	this->_refVacio = -1;
	this->_serializador.reset();
}


unsigned long int MetaBloqueBPlus::getCantBloques(){
	return this->_cantBloques;
}

unsigned long int MetaBloqueBPlus::getRefBloqueRaiz(){
	return this->_refRaiz;
}

unsigned long int MetaBloqueBPlus::getRefBloqueHoja(){
	return this->_refHoja;
}

unsigned long int MetaBloqueBPlus::getRefBloqueVacio(){
	return this->_refVacio;
}


unsigned long int MetaBloqueBPlus::getSize(){
	return 4*sizeof(unsigned long int);
}


void MetaBloqueBPlus::setCantBloques(unsigned long int cantidad){
	this->_cantBloques = cantidad;
}

void MetaBloqueBPlus::setRefBloqueRaiz(unsigned long int referencia){
	this->_refRaiz = referencia;
}

void MetaBloqueBPlus::setRefBloqueHoja(unsigned long int referencia){
	this->_refHoja = referencia;
}

void MetaBloqueBPlus::setRefBloqueVacio(unsigned long int referencia){
	this->_refVacio = referencia;
}


void MetaBloqueBPlus::unpack(char* headerData){
	this->_serializador.reset();

	this->_serializador.desSerializar(headerData, this->_cantBloques);
	this->_serializador.desSerializar(headerData, this->_refRaiz);
	this->_serializador.desSerializar(headerData, this->_refHoja);
	this->_serializador.desSerializar(headerData, this->_refVacio);
}


void MetaBloqueBPlus::pack(char* headerData){
	this->_serializador.reset();

	this->_serializador.serializar(headerData, this->_cantBloques);
	this->_serializador.serializar(headerData, this->_refRaiz);
	this->_serializador.serializar(headerData, this->_refHoja);
	this->_serializador.serializar(headerData, this->_refVacio);
}


